"""
设备资产管理模块快速验证测试
"""

import sys
import os

# 添加项目根目录到Python路径
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))

def quick_test():
    """快速验证测试"""
    print("🔧 开始设备资产管理模块快速验证...")
    
    try:
        # 测试导入
        from src.app.modules.asset.service import AssetService
        from src.app.modules.asset.utils import AssetUtils
        from src.app.modules.asset.cache import AssetCache
        print("✅ 模块导入成功")
        
        # 测试服务初始化
        service = AssetService()
        utils = AssetUtils()
        cache = AssetCache()
        print("✅ 服务初始化成功")
        
        # 测试工具函数
        asset_id = utils.generate_asset_id()
        print(f"✅ 生成资产ID: {asset_id}")
        
        # 测试数据验证
        test_data = {
            'asset_type': 'server',
            'asset_name': '测试服务器',
            'asset_code': 'QUICK_TEST_001',
            'cpu_cores': 4,
            'memory_gb': 8.0
        }
        is_valid, error_msg = utils.validate_asset_data(test_data)
        print(f"✅ 数据验证: {'通过' if is_valid else '失败'} - {error_msg}")
        
        # 测试获取资产类型
        asset_types = service.get_asset_types()
        print(f"✅ 获取资产类型: {len(asset_types)} 种")
        
        # 测试获取部门列表
        departments = service.get_departments()
        print(f"✅ 获取部门列表: {len(departments)} 个")
        
        # 测试获取统计信息
        stats = service.get_asset_statistics()
        print(f"✅ 获取统计信息: 总数 {stats.get('total_count', 0)} 个资产")
        
        # 测试获取所有资产
        assets = service.get_all_assets()
        print(f"✅ 获取资产列表: {len(assets)} 个资产")
        
        # 测试缓存功能
        cache._set_cache("test_key", "test_data")
        cached_data = cache._get_cache("test_key")
        print(f"✅ 缓存功能: {'正常' if cached_data == 'test_data' else '异常'}")
        
        # 测试创建资产
        result = service.create_asset(test_data)
        if result['success']:
            created_asset_id = result['data']['asset_id']
            print(f"✅ 创建资产成功: {created_asset_id}")
            
            # 测试获取单个资产
            asset = service.get_asset_by_id(created_asset_id)
            print(f"✅ 获取单个资产: {'成功' if asset else '失败'}")
            
            # 测试更新资产
            update_data = {'asset_name': '测试服务器-已更新'}
            update_result = service.update_asset(created_asset_id, update_data)
            print(f"✅ 更新资产: {'成功' if update_result['success'] else '失败'}")
            
            # 测试删除资产
            delete_result = service.delete_asset(created_asset_id)
            print(f"✅ 删除资产: {'成功' if delete_result['success'] else '失败'}")
        else:
            print(f"❌ 创建资产失败: {result['message']}")
        
        print("\n🎉 设备资产管理模块快速验证完成！所有核心功能正常。")
        return True
        
    except Exception as e:
        print(f"\n❌ 快速验证失败: {e}")
        import traceback
        traceback.print_exc()
        return False

if __name__ == '__main__':
    success = quick_test()
    sys.exit(0 if success else 1)
